package savet.util;

import java.util.HashSet;
import java.util.Set;
import savet.entidades.Trabalhador;

/**
 *
 * @author Adisson
 */
//public class Observable {
public class Observable extends java.util.Observable {

    private Set<Observer> observadores = new HashSet<Observer>();

    public void notificarAdicaoTrabalhador(Trabalhador trabalhador) {
        for (Observer observer : observadores) {
            observer.elementoAdicionado(trabalhador);
        }
    }

    public void notificarRemocaoTrabalhador(Trabalhador trabalhador) {
        for (Observer observer : observadores) {
            observer.elementoRemovido(trabalhador);
        }
    }

    @Override
    public void notifyObservers() {
        setChanged();
        super.notifyObservers();
    }

    @Override
    public void notifyObservers(Object arg) {
        setChanged();
        super.notifyObservers(arg);
    }

    public boolean adicionarObserver(Observer o) {
        try {
            addObserver(o);
            return observadores.add(o);
        } catch (Exception e) {
            return false;
        }
    }

    public boolean removerObserver(Observer o) {
        deleteObserver(o);
        return observadores.remove(o);
    }

}
